using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// 
/// </summary>
public class FindEnemyDemo : MonoBehaviour
{
	private void OnGUI()
	{
		if (GUILayout.Button("查找血量最低的敌人"))
		{
			//查找场景中全部的Enemy类型的引用
			Enemy[] allEnemy = Object.FindObjectsOfType<Enemy>();//查找Enemy类型的游戏对象（节点所挂载的Enemy脚本组件）
			//获取HP数值最低的对象的引用
			Enemy min = FindEnemyByMinHP(allEnemy);//调用刚才在后面写的方法
			//根据Enemy类型的引用，获取其他组件类型引用
			min.GetComponent<MeshRenderer>().material.color = Color.red;//把找到的结果标红
		}

		if (GUILayout.Button("层级未知，查找子级节点"))
		{
			var childTF = TransformHelper.GetChild(this.transform, "Cube");
			childTF.GetComponent<MeshRenderer>().material.color = Color.red;
		}
	}

	public Enemy FindEnemyByMinHP(Enemy[] allEnemy)//对，你得告诉我查找范围
	{//假设第一个就是血量最低的敌人
		Enemy min = allEnemy[0];//初始值是存第一个元素的引用
		for (int i = 1; i < allEnemy.Length; i++)
		{//依次与后面比较，索引从一开始
			if (min.HP > allEnemy[i].HP)//发现后面敌人的HP小于当前
				min = allEnemy[i];//替换引用
		}
		return min;
	}
}